Blocking -VDC

Just commenting on the idea of using a motor as a generator to determine direction:

Connect one terminal of the motor to a voltage divider at Vcc/2. Connect the other, through the appropriate resistors and diodes to protect the Arduino and capacitor to smooth the signal, to an Analog input pin.

Motor spins one way, voltage>2.5V. Motor spins the other way, voltage<2.5V. You could connect a second Analog input to the voltage divider to get an accurate read of zero speed voltage.

Load the motor down with the right resistor across it, and you can probably get a reasonable indication of speed, too. The resistor should go right across the motor.