A two-chip approach which would allow "smooth" control of start/stop and direction would be to use a quad flop with complementary outputs (e.g. 74HC175) and a 4x2 multiplexer chip (e.g. 74HC153). Drive two of the flop inputs with the inputs that should control speed and direction (they can equally easily be wired to behave as "run" and "direction", or "run CW" and "run CCW"). The other two flop inputs should be tied to the outputs of the multiplexer. The multiplexer "select" inputs should be tied to the first two flop outputs (the ones controlled by the direction inputs). The "data" inputs to the multiplexers should be wired such to yield the desired behavior for the various direction modes:
- For stationary, wire them so D2=Q2 and D3=Q3
- For clockwise, wire them so D2=Q3 and D3=/Q2
- For counterclockwise, wire them so D2=/Q3 and D3=Q2
Wiring the circuit in that fashion should yield clean outputs that will move up or down by one click per cycle when the directional buttons are pushed, and remain stationary when the buttons are released, with no "weird" actions on a button press or release. The addition of a 74HC174 would make possible a "single-step" feature (bringing the circuit total up to three chips plus the function generator that produces the clock).