The problem could just be a buildup of Carbon on the IAC valve.
The Valve is a pintle with a worm gear on one end.
The worm gear is threaded into the IAC Stepper motor.
As the stepper turns back and forth, it will either extend or shorten the IAC Pintle into the Idle Air passageway.
If the pintle is coated with Carbon deposits, these deposits get caught in the threads of the pintle.
This causes the stepper motor to BIND and not make smooth adjustments when commanded to.
When the IAC Pintle is jerked back and forth, your idle can surge.
I would try cleaning out the IAC first and see if the Idle returns to normal.
You will have to reset the Computer after you clean the IAC so that it relearns to idle again.
If the problem returns after the cleaning, I would replace the IAC before I look further.
And don't LUBRICATE the IAC. No lubrication is better.
Any grease, or WD-40 or any silicone just makes the pintle WET and it will attrach even more carbon deposits.