Hola
¿A que velocidad quieres comunicar? 10 metros es una distancia importante, pero el problema no es tanto la interface, como la velocidad. Naturalmente que hay varias factores que afectan: el tipo de cable, el ambiente (ruido eléctrico)...
A 9600 yo he hecho pruebas con una conexión USB de 10 metros de longitud sin problemas, pero insisto, depende de varios factores.
Para una conexión RS232 no deberías tener problemas a 9600 ni ha 19200.
La forma de hacer la conexión es prescindir del convertidor USB <-> RS232 de la placa Arduino, igual lo más sencillo es usar una de las versiones de Arduino que no tienen este convertidor (). El ATMEGA 168/328 tiene un puerto serie pero a niveles TTL (0-5V) y los ordenadores transmiten +/-12V. La solución es poner un convertidor de niveles (como el MAX232) lo más cerca posible de la placa Arduino.
En este enlace
http://complubot.educa.madrid.org/tecnologia/electronica/comunicaciones_pc_robot/comunicaciones_pc_robot.php puedes encontrar algo de información sobre estas cuestiones que igual te puede ser de utilidad.
Si necesitas subir mucho más la velocidad y quieres una comunicación más robusta necesitarias una comunicación RS485.
Hay otros aspectos que también son importantes. En ocasiones parece que la comunicación funciona con una determinada velocidad y longitud de cable... el problema es que lo hace con una tasa de errores mucho mayor. Aquí ya entra en juego la estadística: no es lo mismo hacer una transmisión cada 10 minutos que estar continuamente comunicando.
Por otra parte es una buena política incluir una cierta "tolerancia al fallo" en nuestros programas (el del PC y el del Arduino), implementado algún tipo de protocolo y "TimeOut" en las funciones que esperan recibir algo.