For motor driver boards, such as those that use the L298N dual motor driver.
I'm not sure why, but if you try and drive two separate logic signals from the same (Arduino) pins then they can interfere with each other, resulting in unpredictable behaviour. To solve this, don't share pins between different motors. You might consider an I2C port expander (such as the MCP23017) if you're running out of Arduino pins.
(The ports on some driver boards that are meant to read the signal actually seem to set a voltage, which flows back and affects any other directly connected driver boards. You could solve this with a large number of diodes (you'd need 3 per motor controlled) - but who can be bothered with that?)