Don't have the damage reduction be additive, have it cumulativemultiplicative.
Damage = Damage * (1.0 - helmetReduction) * (1.0 - gloveReduction) * (1.0 - trousersReduction) * (1.0 - upperArmorReduction) Each layer of armor reduces not the complete damage, but the damage remaining from the previous layer. As long as no single layer reaches 1.0, you will always have a bit of rest damage. You can also scale this system upwards and add additional armor slots later without breaking anything.