Microphone outputs strange signals when motors connected

So I am working on a sound activated robot project where the robot moves when the sound in a room is above a certain level.
Everything runs on 5-volts.
So the problem I'm having is that when I connect up the motor driver board, the output from the microphone goes flat at something like 600 on the ADC.
When I power the motors separately from the arduino and other logic boards with my laptop's USB (while debugging and such) it works fine, and I have the motor shield powered by a separate 5-volt wall wart, with just one ground line running back to the arduino so that the logic signals work (the motors and the motor board's logic all run on 5-volts too).

I need this to be able to operate on it's own with (ideally) batteries, so that it can be mobile without a tether for power.

But when there's just one power supply (wall wart, battery, whatever) the microphone just has a heart attack and puts out nothing useful at all, and I don't know what is causing this problem, and I don't know how to solve it.

Some details on the stuff involved here:

  • sparkfun electret microphone breakout board, takes +5V, GND, and puts out signal.
  • signal is hooked up to an MSGEQ7, which is essentially a graphic EQ chip that puts out analog levels for certain bands, which are ADC readable. Takes +5v, GND, and some control lines from the arduino. The output is hooked up to Analog in 0.
  • Arduino Uno
  • Canakit motor driver board that can operate 2 DC motors up to 1A each, but I'm using small DC gearmotors that have a nominal voltage of 6v but run fine anywhere above 2.5ish volts.
  • The motor driver takes 6 control lines from the arduino for direction, and enable of each motor. By hooking up enable to a PWM output, you get speed control.
  • The motor driver can operate on it's own 5V regulator (taken from the motor power in) for it's logic, and you just need to hook up the ground to the arduino to make the logic controls work, and you can tap it's 5V as a source for up to about 1A of power (when i did this to power the arduino and everything else, other weird stuff happened. It can also take it's 5V logic from an external source by changing a jumper (disables internal 5V regulator) and the motors operate on their own power. But as soon as I hook up the motor input power to the same source as the arduino and other stuff is running on, the microphone goes all borked and nothing happens. And because the motor speed is determined by the bands of the audio coming in, they just go the same speed, even though the room is silent.

Can anyone tell me what exactly is happening, and if so, what I can do to fix this?
To reiterate, the only way I've managed to get this thing to work is to have the motor driver power itself (motor power in, from wall wart, 5V), with a ground and control circuits coming to the arduino, and the arduino, mic, MSGEQ7 all running on USB power. And this is not a viable permanent solution!
Is this a ground loop? How would I fix that?
Is this something else? Inadequate power? I've hooked this thing up in every possible combination of power flows, and the 1 supply never works right. As soon as I disconnect the motor power in from the supply everything works (except the motors stop...).

Please let me know if I can clarify anything...
Thank you.