problema con el control de servos y motores

Hola,
quiero controlar dos servos y cuatro motores, los servos mediante un joystick y los motores mediante cuatro potenciometros.

El problema que tengo yo diria que ruido, (ahora vereis el vídeo), igual estoy controlando un motor y se mueve algun servo, regulo otro motor hasta pararlo y si havia alguno con un pwm muy bajo tambien se para, etc. En el vídeo se puede ver.

los servos los alimento cada uno por separado, con un regulador DC-DC.
Los motores ya que son pequeños los alimento con otro regulador DC-DC, y unos transistores.

Alguien me puede ayudar para ver que pasa? Y como solucionarlo?

el codigo es el siguiente:

#include <Servo.h>


/* entradas y descripcion de los motores
del robopingpong 27_07_2016 */

// Pin digital PWM que utilizaremos para alimentar el motor cadencia 
int motorcadencia = 3;
// Pin analógico que utilizaremos como entrada de datos de cadencia
int entradacadencia = A2;
// Variable que recogerá las lecturas de A2 motor cadencia bolas
int valorcadencia = 0;

// Pin digital PWM que utilizaremos para alimentar el motor superior 
int motorsuperior = 5 ;
// Pin analógico que utilizaremos como entrada de datos de top spin motor superior
int entrada_mot_sup = A3;
// Variable que recogerá las lecturas de A3 força efecte top spin
int valor_mot_sup = 0;

// Pin digital PWM que utilizaremos para alimentar el motor inferior esquerra 
int motorinferioresquerra = 6;
// Pin analógico que utilizaremos como entrada de datos de inferior esquerra
int entrada_mot_inf_esquerra = A4;
// Variable que recogerá las lecturas de A4 força efecte esquerra
int valor_mot_inf_esquerra = 0;

// Pin digital PWM que utilizaremos para alimentar el motor inferior dreta 
int motorinferiordreta = 11;
// Pin analógico que utilizaremos como entrada de datos de motor inferior esquerra
int entrada_mot_inf_dreta = A5;
// Variable que recogerá las lecturas de A5 força efecte dreta
int valor_mot_inf_dreta = 0;


/* aqui configuramos los servos con el joystick */

Servo panServo;//asignamos un eje a un servo y otro eje al otro servo 
Servo tiltServo; 

int servoPanPosition = 90;//posición de referencia horizontal
int servoTiltPosition = 90; // posición de referencia verical
int joystickPanSpeed = 0;
int joystickTiltSpeed = 0;
int joystickPanPin = A0; //marcamos entradas analógicas que medirán el ángulo del joystick
int joystickTiltPin = A1;
int servoPanPin = 9 ;//declaramos los pines digitales por donde le entrará la instrucción del joystick al servo.
int servoTiltPin = 10;
// int boton = 8;


void setup()
{
// Configuramos los pines de los motores como salida, aunque no es necesario
pinMode(motorcadencia, OUTPUT);
pinMode(motorsuperior, OUTPUT);
pinMode(motorinferioresquerra, OUTPUT);
pinMode(motorinferiordreta, OUTPUT);

pinMode(servoPanPin, OUTPUT); //se declara igual que declarariamos un led
pinMode(servoTiltPin, OUTPUT); // se declara igual que declarariamos un led
panServo.attach(servoPanPin); //hace mover al servo1
tiltServo.attach(servoTiltPin); //hace mover al servo2
}

void loop() 
{

// Leemos el valor en la entrada analógica A2 y se lo asignamos a valorcadencia
valorcadencia = analogRead(entradacadencia);
//hacemos un mapeo de la señal, el valor de la entrada analogica de 0 a 1023 lo transformamos de 0 a 255 señal PWM
valorcadencia = map(valorcadencia, 0,1023,0,255); //redondea el resultado entre 0 y 255
// Determinamos el nivel de salida 
analogWrite(motorcadencia, valorcadencia);

// Leemos el valor en la entrada analógica A3 y se lo asignamos a valor_mot_sup
valor_mot_sup = analogRead(entrada_mot_sup);
//hacemos un mapeo de la señal, el valor de la entrada analogica de 0 a 1023 lo transformamos de 0 a 255 señal PWM
valor_mot_sup = map(valor_mot_sup, 0,1023,0,255); //redondea el resultado entre 0 y 255
// Determinamos el nivel de salida 
analogWrite(motorsuperior, valor_mot_sup);

// Leemos el valor en la entrada analógica A4 y se lo asignamos a valor_mot_inf_esquerra
valor_mot_inf_esquerra = analogRead(entrada_mot_inf_esquerra);
//hacemos un mapeo de la señal, el valor de la entrada analogica de 0 a 1023 lo transformamos de 0 a 255 señal PWM
valor_mot_inf_esquerra = map(valor_mot_inf_esquerra, 0,1023,0,255); //redondea el resultado entre 0 y 255
// Determinamos el nivel de salida 
analogWrite(motorinferioresquerra , valor_mot_inf_esquerra);

// Leemos el valor en la entrada analógica A5 y se lo asignamos a valor_mot_inf_dreta
valor_mot_inf_dreta = analogRead(entrada_mot_inf_dreta);
//hacemos un mapeo de la señal, el valor de la entrada analogica de 0 a 1023 lo transformamos de 0 a 255 señal PWM
valor_mot_inf_dreta = map(valor_mot_inf_dreta, 0,1023,0,255); //redondea el resultado entre 0 y 255
// Determinamos el nivel de salida 
analogWrite(motorinferiordreta, valor_mot_inf_dreta);



joystickPanSpeed = (analogRead(joystickPanPin) - 512) / 100;
// -512 Para proporcionar igualdad de +/- números
joystickTiltSpeed = (analogRead(joystickTiltPin) - 512) / -100;
// Negativo 50 a la dirección contraria

servoPanPosition = constrain((servoPanPosition + joystickPanSpeed), 50, 130);
servoTiltPosition = constrain((servoTiltPosition + joystickTiltSpeed), 1, 179);
// constrarin función para no exceder los límites de servo

panServo.write(servoPanPosition);
tiltServo.write(servoTiltPosition);

delay(80); // para ajustar la velocidad general del movimiento de los servos 

}

NO entiendo el problema

el problema es que no funciona como tiene que funcionar :) :) :) :) por ejemplo los servos se mueven cuando mueves algun potenciometro de algun motor. Yo creo que son interferencias que hacen los motores pero no se como eliminarlas, ahora he puesto condensadores de 100nF entre bornes de los motores. a ver si esta es una solución? Tengo que probarlo. Queria saber si el sketch esta bien, yo creo que si? pero como soy un novatillo en esto de programar sketch.

Efectivamente eran ruidos, con los condensadores y ferritas funciona bien, los servos ya no se mueven solos.