Joystick.setXAxis(map(analogRead(A3),0,1023,-127,127));
Rather than directly using the built-in 'map()' function you could define a custom function:
int readAxis(byte pin)
{
int v = analogRead(pin);
if (v < deadRangeLow)
return map(v ,0, deadRangeLow, -127, 0);
if (v > deadRangeHi)
return map(v, deadRangeHigh, 1023, 0, 127));
return 0;
}
Then you can just use:
Joystick.setXAxis(readAxis(A3));
If you ever need to change the mapping you only need to do it in one place.