I've recently thought of pretty much the same thing.
@Anonymous: Popularity is not difficult to define. Call the new currency bitcoin'. A good measure is the price of a bitcoin' in terms of some broad index of consumer goods (like the CPI basket), commodities, or whatever else you want. Perhaps the best available measure of popularity is MtGox's current price in USD, or EUR, etc.
If the bitcoin' price is high, the mining reward rises, essentially quickly generating new bitcoin', thereby lowering their price. A falling bitcoin' price would trigger higher mining rewards to slow the supply expansion.
Practically, at present, I think the extra stabilization provided by such a system would be minimal. But my opinions on the matter are currently not too strong.
Note that the current mining system already works to stabilize the price of a bitcoin to some extent: as the price of a bitcoin rises, more miners enter, increasing the supply and helping to drive down prices. But how's that system working out? So far, not so great as far as stability goes.
And of course, when the ~21M bitcoin cap is hit, there will no longer be any stabilization mechanism available that links bitcoin supply with bitcoin price.
UPDATE 1 I forgot to mention the important question of how "popularity" is announced/communicated into the bitcoin' system. Very good question. One could imagine a trusted entity with a well-known public key signing such announcements and system nodes verifying that particular entity's signature.
One nice aspect: the "popularity" measure could be relatively objective, e.g., latest publicly available quoted price from a popular exchange. This would at least allow anyone in the world to determine whether this trusted entity is really trustworthy (are they lying about publicly available quoted prices???). But admittedly, this is a real sticking point in the design, e.g., what if this trusted entity is hacked?
UPDATE 2 Another related idea: if one could reliably enforce bitcoin contracts that involve trades of other real-world commodities/assets, then it'd be easy to construct a decentralized system in which many anonymous entities publicly announce bitcoin's "popularity" (again, use bitcoin's current market price as a proxy) and these announcements would be very reliable. (To be clear: the entire point of these announcements is to tweak the block mining reward to stabilize the bitcoin' price. The basic idea: reliable announcements of current BTC' prices are announced into the BTC' network. The mining block reward is constantly fluctuating depending on the current BTC' price. If BTC' is relatively high, the block reward increases, attracting miners. If low, the reward is lowered.) Just make these announcements into the form of offers to buy and sell bitcoin' for the commodity/basket/asset against which it's stabilized. For example, if the current market price of a bitcoin' is 1 USD, then an announcer might announce "I'll sell 1000 bitcoin' for 1.1 USD each and buy 1000 for 0.9 USD each". If the announcement is binding, then you can bet that announcement is not going to be disadvantageous to the announcer! One can reliably deduce a current price bracket for bitcoin'. Again, though, one needs a reliable way to enforce bitcoin contracts exchanging real-world commodities like USD.