First:
Check your coolant level- Any air bubbles in the coolant will cause a fluctuating idle. If its low, top it off, then CORRECTLY bleed it
Second:
Check for vacuum leaks- Go over all vacuum lines connected to the intake manifold, looking for cracked, corroded or disconnected lines . Spraying soapy water on the lines while the engine is running is a popular and effective way to find an air leak.

Next:
To isolate a bad FITV/IACV/vacuum leak-




*Note: the FITV is only located on the bottom of the throttle body on H23/22's. For F22's, its on the front of the intake manifold*


To fix the FITV:
-Take it off the throttle body with 3 10mm bolts and 2 coolant hoses.
-Take the gold/bronze cap off the end with 2 phillips head screws. You'll see a wax ring/plunger under the cap; screw this down as far as possible, then back it out half a turn. Thats it. Then reassemble.

To fix the IACV:
-Take it off the intake manifold with 2 10mm bolts and 2 coolant hoses.
-Clean out all the screens/filters with some carb cleaner/seafoam, then reinstall.

Lastly:
If none of these fixed the problem, clean the throttle body: Sometimes carb buildup between the throttle plate and TB will hold it open slightly, causing fluctuations.
-Take the intake off, and disconnect the coolant hoses for the FITV (where applicable) and take the throttle cable off. Disconnect the connector for the TPS on the back of the throttle body.
Take the TB off the intake mani with the 2 12/14mm bolts and 2 nuts. Clean the carb buildup off the entire throttle plate with some carb cleaner/seafoam, both opened and closed. When the plate is opened, make sure to clean the mating surface on the TB


Sorry the pictures are soo big but they're hard to see otherwise. Hope this helps