Maximum Number of Stepper Motors on an Arduino Board

I'm trying to create a model that has a component which moves out, pauses, then moves back in. I've been looking online, and it appears a stepper motor would do this. The moving object is light, so I guess a 5V stepper motor will do the job, and the travelling distance would only be a maximum of 8cm. Do I need a motor shield to connect the motor to my Arduino board? I've also seen that a 'ULN2003 controller' works, but I don't understand what this is? Also, how many stepper motors can I connect to a single Arduino board?

Any help would be very much appreciated!

An R/C servo would be cheaper and might do the job.
Easier to drive too.

If you use a stepper driver you can control a stepper with just signals from your Arduino, Step & Direction, so you could easily control 6 steppers off of 1 Arduino. WIth some multiplexing - depending on just how motors have to function together, you could do more.

Cheers guys that's really useful. I found some cheap 5V stepper motors that connect to a ULN2003 controller and then to the Arduino (my moving parts are really light so I only need 5V). I'm guessing I'll need to connect a battery pack as the laptop power won't be enough, do you know if a 4 cell pack would be sufficient to serve 4 stepper motors?

According to my findings you can connect up to 11 stepper motors or more by controlling each one separately all using a single Arduino control board.

This is how it works:

15 Arduino digital pins.
4 pins are used for stepper motor control lets say using ULN2003, connected and control all motors altogether!
11 remaining channels are connected to a set of relays that control each motor power on.

Some stepper motors require only 2 wires. In this situation a higher number of combination maybe available.