I recall that in the early days of World of Warcraft, the concept of "effective health" for tanks was floating around. Basically, the idea was that if you had 1,000 health and 50% damage reduction, your effective health was 2,000 (1,000/50%).
Using the same metric but with the more stochastic way armor works in D&D, we can see that a 12th level fighter with Con 14 will have 100 hp (assuming fixed hp). Looking over the first page of results when searching D&D Beyond for CR 12 creatures (yes, I know 5e is unlike 3e and Pathfinder in that it doesn't assume fights against roughly "on-par" creatures, but it's helpful to get a baseline) shows that most have an attack bonus of +7 to +9 with occasional outliers, so I'm going to simplify to +8. If the fighter has full plate, that's an AC of 18, meaning the monsters hit on 10+ and miss on 9-, which means the fighter only takes 55% of incoming damage. So the fighter has an effective health of 100/0.55 = 182 hp.
Adding a +2 AC bonus (e.g. a shield) to the fighter lowers that to 45%, so they now have 222 effective hp, a 22% increase. Adding a second +2 bonus (e.g. shield of faith) lowers it even more to 35%, for 286 effective hp, which is a 57% increase over the baseline or a 29% increase over a single +2 bonus.
This is of course a simplification. For one thing, I've ignored crits, because the extra damage from one varies in 5e. I've also ignored damage that bypass AC, which is fairly common. But it shows a tendency that boosting AC has accelerating returns (or whatever the opposite of diminishing returns is).