Right now you can just use the web-browser's standard bookmarking function to do this.
LONG ANSWER:
Basically Twine exported HTML files add their history onto the current URL after the # (e.g. #m.12.98.56) - so as long as the bookmark records that information then the history is preserved.
When a Twine HTML starts up it detects the stuff after the # and internally/silently replays all passages in the history then displays the most recent one. This is done to restore the variable state as near as possible.
One weakness is that the stuff after # is basically just a .dot delimited list of passage numbers in base36 format. Those passage numbers change pretty much whenever the HTML file is regenerated from Twine. There is already agreement on creating a permanent id system - but that requires changes to the .twee and .tws file formats so will be delayed for a little bit.
If there is call then we can create a system that uses HTML5 localStorage to explicitly save the variables and passage history. I'm going to need to myself eventually for a couple of generative story projects I have in mind later - so this is on my list by way down in priority. If enough users want this functionality then I can prioritise it higher.
--Stormrose