Can someone help me compact and clean up this code.

Try using arrays rather than having 5 similar named variables.

eg.
#DEFINE ARRAYSIZE 5
int Finger[ARRAYSIZE]= {0,1,2,3,4};

byte servoValue[ARRAYSIZE];

Then you can loop over the array rather than having multiple lines with just slightly different variable names.

for (byte loopCount =0; loopCount < ARRAYSIZE; loopCount++)
{
servoValue[loopCount] = Function(FInger[loopCount]);
}

It will also help you spot all those unused variables. It is much easier to declare all the variables at the start of apiece of code rather than some at the start and some part way through.

Edit - OK Tom beat me to it but the same idea.