Using transistors to minimize the number of Arduino pins used for this stepper motor driver
I think what you're really after is an IO expander: http://www.digikey.com/product-detail/en/SX1505I087TRT/SX1505I087CT-ND/2272323

It's a relatively simple digital device.  The Arduino would communicate with the IO expander over some standard communication protocol (typically I2C or SPI), and the IO expander wiggles pins on behalf of the controller.

Instead of using 12 pins on the Arduino to directly control the H bridges, the Arduino uses 2 pins (in the case of I2C) to communicate with the IO expander, and the IO expander directly controls the pins.  The Arduino would say "Okay Mr. IO Expander.  Turn on your pin2 and switch off your pin8", and the IO expander would set those pins accordingly.