mega328 based arduino board has 19 I/O pins
All these pins can be set as I or O individually.
As for the motor there are many driver chips. If you don't need FWD/REV then just a resistor/transistor/diode is all you need.
Search on the forum, there's been a 1000 threads about driving DC motors.
Having said that I can't find a single tute on the subject, I know they are around so someone will post here soon I'm sure.
Meanwhile look at this
http://arduino.cc/playground/uploads/Main/relays.pdfIt shows a relay but the idea is the same, just substitute the relay with a DC motor.
Another simple way to get FWD/REV is with a DPDT relay.
______
Rob