bleh, still seems like you can throw too hard, try a bit o' math to create less fuss
for example:
//max=the larger value you will expect
//min=the smaller value you will expect
//actualvalue=the actual value recieved
//newvalue=god it speaks for itself!!

newvalue=max*Math.sqrt(2*(actualvalue-min)/max)/2+min;
the farther away the value is from the average of "min" and "max", the bigger the change will be; for example, if the "expected" range is 0-2:

0=well actually i suppose it would be 0
0.25=0.5
0.5=0.7071067
0.75=0.8660254
1=1
1.25=1.1180339
1.5=1.2247448
1.75=1.3228756
2=1.4142135