Spiral staircases are cool. They look cool. They're fun to traverse.
Minecraft is square. And blocky. It would seem that constructing circles and circular structures would be difficult, but it's not!
This link has diagrams for circles of different diameters, up to 45.
But how does that help with staircases?
The first step to making a spiral staircase is to make a circle. I'll start with a simple design and construct a circle of diameter 1, then make a staircase around it.
This staircase is just a pillar with stairs on the sides and slabs on the corners. It is trivial to make, but it is ugly and functions poorly. It is very thin, so it is easy to fall off.
Intuitively, one might want to extend the staircase out by one block. This would make the staircase wider, but the border would likely be rectangular – we wouldn't end up with a spiral.
To fix this, make another circle with a larger diameter than that of the first circle. Make the circles concentric.
The area inside the ring is the outline for our staircase. We will build the staircase by filling in this area and elevating the blocks around the circle.
The first step is just to lay down some stairs.
Next, we continue upwards, using the inner and outer circles as our borders.
In the next step, you may accidentally do this:
DON'T. Remember that we are building the staircase in a circle, not a line. Instead, do this:
The block that was a stair is now a slab. Observe that by replacing the stair with a slab, we have made a 1/4th turn in our stair. Next, we just repeat that pattern as far up as we want. We'll end up with stairs like these:
Of course, the inner circle does not have to have a diameter of one. The circles can have any diameters you want, depending on the desired dimensions of the stair. Here are the same step-by-step pictures for a staircase using circles of diameter 17 and 25: http://imgur.com/a/pTOzl (in this one I built the stairs out of wool first and then replaced them with wood. That is not necessary, it was done because wool stands out more).
That concludes my tutorial. Comments and questions are welcome.