Is there a way to make a crypto-currency stable by design? How?
There is a few problems with giving a crypto-currency a stable value algorithmically:

Stability compared to what?

The algorithm would have to be specifically pegged to either an asset, a currency, or some kind of calculated wealth index. But, if it were stable in comparison to e.g. the USD, it would not be stable in comparison to other currencies, or a barrel of oil. There'd always be room for speculation, and it would become completely decoupled when the value it is pegged to ceased to exist.

Stabilizing the value requires control of the money supply

In order to guarantee a certain value, e.g. an exchange rate of 1 SC (StableCoin) = 1 USD, you'd have to create an unlimited offer to buy and sell SC at that price. Both is very hard to integrate into the protocol:


In order to lower the price to 1 USD/SC, you can easily have the algorithm create more SC. However, it is hard to algorithmically accept fiat payments in order to sell them! Essentially your algorithm would need to implement bank contracts, user management and all the other shenanigans exchanges do.
To increase the price to 1 USD/SC, you'd have to be able to buy any amount of SolidCoins at 1 USD/SC. That requires very deep pockets. You also have to provide all the exchange services as before.


Then, if you wanted a proof-of-work validation, you'd also have to be able to buy back any mining rewards.

In short, I don't think that stability can be guaranteed algorithmically. You would need a central entity that guarantees the price by buying and selling at a fixed value, perhaps for a trading commission. This cannot be implemented in the algorithm, as it would require interfacing with the fiat world, which is not completely digital.

Addendum:

After thinking a bit more about it, I realized that when you create a system that is stable compared to another unit of account, essentially you create a debt-based voucher system for that other unit. Unless your currency decouples from the central market maker by being more successful than what it derives from, your currency remains completely dependent on the well-being of the central market maker – it will lose most of its worth should the central market maker default. 

If you follow through on that thought, you essentially arrive at the system that is ripple, where any user can be a "central market maker" and issue his own StableCoins in form of IOUs pegged to any unit of account other people trust him to owe them.