Here is a solution formatted using a Fitch-like natural deduction proof checker linked to below with a text explaining the rules in more detail:

I proceeded similarly to the way you are proceeding.
Because the goal is a conditional I assume the antecedent of the conditional on line 2.
Since the consequence of that conditional is also a conditional, I start another subproof assuming the antecedent of that conditional ¬R on line 3. This is where our proofs differ.
The subproof on lines 4 and 5 are needed for this proof checker since I do not have double negative introduction, but I can easily derive it. However, I do have double negative elimination (DNE) which allows me to derive line 7.
This is similar to where you are in your proof except for my line 3 where I assumed ¬R. Again the reason I assumed that is because the consequence of the goal, ¬R → ¬Q, is a conditional. I have to derive that first and so assume its antecedent.
There is no need to go from (Q→R) to (¬Q→¬R). By assuming ¬R on line 3 I can derive ¬Q on line 12 and then introduce the desired conditional on line 13.
The rules I have used are modus tollens (MT), double negative elimination (DNE), conditional elimination (→E), conditional introduction (→I), contradiction introduction (⊥I) and negation introduction (¬I).
Kevin Klement's JavaScript/PHP Fitch-style natural deduction proof editor and checker http://proofs.openlogicproject.org/
P. D. Magnus, Tim Button with additions by J. Robert Loftis remixed and revised by Aaron Thomas-Bolduc, Richard Zach, forallx Calgary Remix: An Introduction to Formal Logic, Winter 2018.