You just release a new version of the app at full price. Like Silvio Rizzi has been doing with Reeder for 5 major versions since 2010, pretty successfully.
So you litter the App Store with N + 1 versions of your app — where N is the number of major versions you’ve released plus the subscription version for non-enterprise end users. I mean sure, that may work, but it’s really ugly and it’ll probably confuse end users when they search for your app. Apple should account for this model in a better way.
I searched the app store and was only able to find "Reeder 5". As someone who hasn't purchased 4, it doesn't show up, so new users aren't confused. Old users are presumably able to figure out that the idea that the bigger number is the one they want.
As for "littering" Apple's app store, it's just rows in a database, of which there are millions. Waste sucks, but we're not talking about a meaningful amount here.