Yes, to expand on what I was saying since I wasn’t explicit, since the $hn token merely reports the physical position of an item in the hierarchy, there is no use for named streams or counter instances since you can only ever have one value for the position for a particular item, and besides the full sequence (1.2.18) would rarely be useful outside of the title itself.
So as to what you are trying to do, specifically, there isn’t a way to do that. The $hn tag produces a whole sequence wherever it is used, and there is no way to extract just a piece of that sequence for use in captions or whatnot. The $parentposition code may be of some limited use, so long as the caption is a direct child of the chapter item and you don’t keep any excluded documents in the Draft ($parentposition is absolute, and disregards compile selections, so it will get out of sync with $hn if used as a substitute in a tree that as excluded items).
However, what you are wanting to do, in isolation, is possible but not with the $hn tag. You can for example number chapters with <$n:chapter:someChapterTitle>, which then makes a “hook” for your figure numbers to use (same as the figure number itself). One possible way of combining the two ideas together would be to generate named chapter numbers on the side, thus continuing to use $hn for the main visible numbers, but also generating a chapter numbering sequence for your captions.
The trick to this method is that if you use a second token to track the numbering of your chapters, that number has to be physically printed somewhere in the output in order for it to be registered. Fortunately, with Scrivener we can generate that number for purposes of cross-referencing, and then later in the compile process, wipe out the generator number in the Replacements compile tab (it is safe to remove it at that point because all of the counters have been evaluated to text).
So the basic idea is you have a tree like this:
Chapter
Section
Section
Chapter
Section
You compile, which adds $hn to all of these as a prefix:
1 Chapter
1.1 Section
1.2 Section
2 Chapter
2.1 Section
Okay, that’s all straight forward, we’re going to add the chapter numbering token as a title suffix in the Formatting pane, to the Formatting pane rows that generate chapter titles:
%%<$n:chapter:<$custom:sectionName>>%%
Okay, this is a compound placeholder: the <$custom:[meta-data key]> token will print the value of the like-named custom meta-data field for that item, which then becomes the “identifier” for this named counter instance. Thus, we can give our chapters a convenient shorthand for use in figures, right in the Inspector or Outliner (adding the “sectionName” column). This will then get used when you compile to generate the number. For example if we call our two example chapters Red and Black, we’d get the following prior to counter evaluation:
<$hn> Chapter%%<$n:chapter:Red>%%
<$hn> Section
<$hn> Section
<$hn> Chapter%%<$n:chapter:Black>%%
<$hn> Section
After counter evaluation:
1 Chapter%%1%%
1.1 Section
1.2 Section
2 Chapter%%2%%
2.1 Section
Okay, so now from anywhere in the book you can refer to the second chapter as <$n#chapter:Black> and it will evaluate to “2”, whether used in a figure caption in that chapter, or a cross-reference to that figure from another chapter entirely. We just need to strip out these temporary numbers from the chapter titles with a Replacement, and we’ll need to use Regular Expressions to be very specific about what we are removing. Copy and paste the following into the Replace field:
%%\d+%%
Leave the With field empty, and check off “RegEx”. This search pattern will look for only cases where digits are surrounded by double-percentage marks and remove the whole thing. Since the search pattern requires numerals in the middle, it will never replace the token itself (which consists of punctuation marks and letters). This is a concern because Replacements run more than once, and they make a sweep before tokens are evaluated so that you can use Replacements to modify placeholders or generate them. Thus we do not want it to find just anything between percentage marks, or it will remove the placeholder token before it gets a chance to generate the number. It generates the numbers, and then the next Replacement sweep finds it and removes it. Hopefully that all makes sense—we’re using a few esoteric loops in the compile process to sneak an ad hoc invisible counter in, and then making use of it in the source material.
The percentage markers themselves were an arbitrary choice, they are useful when working with RegEx since the percentage mark isn’t a dedicated search symbol (like “+” is). You can use whatever you want, but if you find the pattern stops working, try escaping the punctuation, like ++\d+++ which is messy and why I chose something simpler to read and error-check. 
Sorry for the huge info-dump, if any that requires more explanation, let me know. Here are some resources:
- 24.18 Replacements, pg. 399.
- 10.1.6 Custom Meta-Data, pg. 120.