Yikes. Ok - first problem:
Move should be the variable character that I declared at the beginning
No. popen() executes shell commands and there's no way that it can bind to your move variable. What you need to do is compose a shell command with with move character in it. Something like this
char cmd[] = "echo # > /dev/tty.usbmodem621";
cmd[5] = move;
pclose(popen(cmd,"r"));
Which brings me to the second problem: constructing shell commands from external data and then blindly executing them creates an attack vector called "shell injection" which is quite a common way to hack into systems.
As another poster has already indicated, you don't need popen() to do this so if I were you I'd avoid and never compose shell commands unless you really have to.