You could also use a vertically-hanging weight and then measure the angle of the sun in relation to that vertical line to determine latitude. While the sun-shadow compass realised on a standardised length of the stick to make accurate calculations, this method relies on accurate and equal divisions of a circle, so they both have some drawbacks. Actually, thinking about it, does the sun-shadow compass need to be a standardised length? If you measure the length of the shadow, then the ratio of that length and the length of the stick would end up equal for any length stick at the same latitude. As Podcreature points out, however, the only problem is making sure it's exactly vertical to the ground, but several methods could be used to fix that issue.

As for determining longitude, I think your best best would probably be to use a magnetic compass. While magnetic north might not line up with axial north, the position of magnetic north is relatively stable over the space of centuries.

If you take the measurement of the suns position in the sky in relation to magnetic north, then you should be able to determine longitude (if the sun is directly behind you as you point the compass toward north, then you're north, while the sun being directly ahead of you would put you in the south while the sun being directly above would put you at the magnetic equator. If you're on the equator, but then as you move east the sun should the sun should be directly to your left while it should be directly to your right as you move west. Positions in the north west would then have the sun be behind you and to the right and so on and so on. You should, then be able to work out your exact position from there using either the sun-show compass or the weight-angle compass. I think