An analytic solution with only one nested query:
SELECT * FROM( SELECT t.*, Row_Number() OVER (ORDER BY name) MyRow FROM sometable t) WHERE MyRow BETWEEN 10 AND 20;
Rank()
could be substituted for Row_Number()
but might return more records than you are expecting if there are duplicate values for name.