Using this as a reference point:
http://en.wikipedia.org/wiki/Stepper_motor
Basically, stepper motors differ from normal motors in that they move to certain, pre-defined rotations instead of just rotating at an RPM approximated by voltage. So you send a signal to a stepper motor, it moves one step (usually 1/200th of a revolution or so), and you send another and it moves another step, etc. (slightly more complicated, but the wikipedia article can tell you that).
Since it's not a constant motion (it's stop start stop start to at least a small degree, even when "smoothly" rotating) there's a vibration created. The frequency of this vibration is the rate at which you're sending pulses to it, since this is the speed that it's stop-starting. Kind of like turning a voltage on and off to produce a square wave sound. In our case they're mounted to metal plates, which amplifies this in a way similar to a drum. So if you control the rate at which pulses are sent, you can change the note/frequency they produce.
All based on intuition, though, so if someone has a more accurate answer please feel free to pop in.
__________________
D5 Robotics, Team 1293: Programmer, CAD'er, Mechanical, Electrical... I've made my rounds.
Events: 2006-2009 Palmetto Regional
Website: http://d5robotics.org/