Instead of this:
value = NewValue
Do something like this:
value = (Value * 7 + NewValue + 7) / 8
This will cause value
to be 7/8 the old value and 1/8 the new value, causing it to gradually "drift" to the new value, rather than jumping there all at once.