The best way to drive motors with Arduino is to use motor shield. And there are many variations of motor shields you can get. But they use pretty same way of driving motors – H-Bridges. In many cases you will find different h-bridge chips that vary in power range and number of channels. Probably simplest motor shield is ladyada’s mshield. It is based on cheap and common L293D chip. Actually there are two of then so shield is capable of driving 4 DC motors either direction or 2 unipolar or bipolar stepper motors. Additionally there are two servo motor connectors.
Scienceprog wrote several short posts to refresh on how easy it is to interface motors and drive them with Arduino by writing few lines of code. First one is simple servo drive. You can write programs using built int Servo library. Another part is driving DC motors. Here you will need to download AFMotor library to make things easy. And final part takes to stepper motor driving. As example there is unipolar stepper motor connected as unipolar. A a special case there is also accelerated stepper motor driving mode included.
We recommend EasyEDA for circuit design and PCB prototype