I had this problem before, and it was due to carbon buildup in the IAC passage.
What happens is, the EGR recirculates all the crap into the intake. It goes pretty much everywhere in the intake and it can deposit soot in and around the opening of the IAC. The pintle on the IAC is very specific. It expects to see readings when it's at a certain position. If there's soot buildup, this shortens the travel of the pintle to the opening slightly, when this happens, it starts to choke the motor and the motor begins to stumble. It sees this abnormal reading, so it backs off causing the idle to jump back up to 1,200 rpms. It will continue to do this same process continuously...
Being that it's really cold out (it's 41 degrees here in Miami right now, so I can only imagine how cold it must be everywhere else north of me), there's probably other issues with the car which are exaserbating the problem with your IAC.
My guess is that your cold start injector is probably clogged just enough that when coupled with the IAC / idle issue, it prevents the car from being able to properly idle.
The IAC is a pretty simple fix. Remove the IAC (it unscrews) and then use a can of "carburetor or throttle body cleaner" and spray inside the opening of the IAC, This will clean the opening. Also make sure you have the correct IAC O-ring to throttle body gasket. If you don't this can also upset the readings / distance from the IAC pintle to the opening. Also, put in some Seafoam or BG-44 into your gas tank. That'll clean all your injectors (including the cold start injector).
2006 Pontiac Solstice
2004 Volkswagen Beetle Convertible (Wife's Car)
2002 Ford Crown Victoria LX
1987 Pontiac Fiero SE / V6 (3.2) 5-Speed
1984 Porsche 944 5-Speed
1981 Pontiac TransAm (Olds 455BB)
1973 Volkswagen Type-2 Transporter