This precise control makes them perfect for a variety of applications. They are commonly used in floppy drives, hard drives and CD/DVD drives to precisely control the speed that the disc turns as well as where the read/write heads are positioned. They are also used in scanners to position the scanning optics and in ink jet printers to move the paper and position the print head. Any application that requires precise positioning is likely to use stepper motors.
For more details on the many varieties of stepper motors, see the following pages:
Quick Start for Beginners - http://www.freescale.com/files/microcontrollers/doc/app_note/AN2974.pdf
Stepper Motor Basics - http://www.solarbotics.net/library/pdflib/pdf/motorbas.pdf
There are two basic methods for controlling a stepper motor. One is to use an IC specifically designed as a stepper motor controller. The other option is to use a microprocessor (the Raspberry Pi, in this case) to directly control the individual coils of the stepper motor. This is the method that I demonstrate in the following video.
The code for the program used in this demo follows.