Steppers can do 360 degree PID control without much hassle, as Jesse said . . . but its open loop control, meaning if your robot runs over a cat at full speed, the stepper can be forced out of position and your controller wouldnt know. It also has some limited set of possible positions it can go to, depending on resolution. Between 2 degrees and 10 degrees is typical.
Hobby servos have a limited set of angles too, although theoretically it can have a much higher resolution at a much lower cost. Hobby servos (unmodified) have some set maximum angle, usually 180 degrees, that it can rotate to. Accuracy is within about 3 degrees on most unmodified servos I have used. Modified servos are open loop control systems, meaning the position control will build up error over time.
Servo motors are very smooth in movement, but steppers have a slight vibration, depending on how good your code is. I once saw a robot make a really loud clattering sound whenever it moved, cause the stepper would shake the aluminum violently when moving . . .
For wheels, either servos or steppers will be fine.
For things like robot arms/legs, unmodified servos are best.
For things that require accurate 360+ degree rotation, such as a tank turret, a stepper would be best.
In the end, I perfer hobby servos because they are cheaper, easier to control, and all the electronics are already built in - saving me time, money, and frustration. Plus, you need to understand control theory if you use steppers.
Below is a stepper motor image. It has a fixed number of magnets, meaning a fixed number of controlled positions. More of these mean a higher resolution.