Du kannst ein bißchen sparen:
Code:
int move_elbow_to(int dest_pos) 
{ 
     int step = 1;                
     if(elbow_pos > dest_pos)  step=-1;
     while (elbow_pos !=dest_pos) 
    { 
           elbow_pos += step;
           move(3, elbow_pos); 
    }   
    return 0; 
}
DU nimmst einfach +1 an, nur wenn < angesagt ist, mußt du das noch ändern.
Auf pos == dest fragt ja eh' schon die while-schleife ab, brauchst du nicht extra nochmal "iffen"

"i" ist überflüssig.

der erste move wäre mit der alten position --> also sinnlos

daher bleibt für ein "for" nix über, also while

der step VOR dem move

btw:
Du solltest "step" gleich definieren wie elbow_pos, also nicht unbedingt "int", wenn vielleicht pos nur ein char ist

Nicht berücksichtigt, was es mit dem Return-value auf sich hat, sonst kann man das auch noch schmeissen