there's a lot of things that could be wrong, would check to see if any code are being thrown (even if the check engine light is not on) and go from there. I've seen O2's, IAC, and fouled plugs (from oil dripping down the cylinder) cause the problems. I would personally do a complete tune-up and go from there.