Alternatively, you could use a percentile model, as with 5e's current damage resistance - have heavy armour give you the full 50% reduction in damage, whilst light and medium armour gave lesser reductions. The tricky part there is that, for anything other than a straightforward halving of damage, it becomes a pain to calculate each time.
I think having the armor give you resistance just some of the time is the best way to handle it.
Heavy armor you need to roll a natural 15 or higher to ignore resistance, medium a natural 13 or higher, and light a natural 11 or higher. That way most hits against light armor will ignore the resistance effect but not all, all criticals will ignore the resistance effect, and it adjusts based on armor worn, but the amount of resistance doesn't change.