For improved readability, I'd change this:
if (value[i] > 612) {
idle = 0;
if (currentAngle[i] > MIN[i]) --currentAngle[i];
} else if (value[i] < 412) {
idle = 0;
if (currentAngle[i] < MAX[i]) ++currentAngle[i];
} else {
++idle;
}
To this:
if (value[i] > 612) {
idle = 0;
if (currentAngle[i] > MIN[i]) {
currentAngle[i]--;
}
} else if (value[i] < 412) {
idle = 0;
if (currentAngle[i] < MAX[i]) {
currentAngle[i]++;
}
} else {
idle++;
}
The code blocks defined by the extra { / } pairs make the conditional flow more clear.
And, since you're not using the pre-delta value in your '++var;' and '--var;' statements, I think 'var++;' and 'var--;' are more readable. YMMV.