The problem is much easier to approach if you break it into two parts:
1) First, write a macro that accepts a parameter and uses it to assemble the desired link output
2) Then, invoke the macro using a parameter value retrieved from $:/SiteTitle
For part (1), you've already done most of the work with the macro above. We can simplify and clean it up a bit:
\define taglinks(here) <a href="""../folder/$here$.html"""><$text text="""$here$"""/></a>
Note the use of """...""" syntax around the attributes in the output. This is because we cannot ensure that the $here$ value does not contain a double-quote (i.e., if your $:SiteTitle text includes double-quotes). The tripled double-quotes is a TiddlyWiki enhancement that allows attribute values to contain double-quotes without breaking the rest of the syntax.
For part (2), while it might seem like it should work, the following does *not* work:
<<taglinks here:{{$:/SiteTitle}}>>
This is because the regular <<macroname>> syntax doesn't evaluate it's parameters, and just passes them along as literal text to be used within the macro body. Fortunately, however, if you use the <$macrocall $name="macroname" ... /> widget syntax instead of the <<macroname>> syntax, the widget parameters *are* evaluated. This allows you to invoke the macro with the desired parameter value, like this:
<$macrocall $name="taglinks" here={{$:/SiteTitle}}/>
Notice how the 'here' parameter does not have any surrounding quotes around the {{...}} syntax. This is what causes the param value to be retrieved from the indicated tiddler (i.e., $:/SiteTitle). In contrast, if the parameter was quoted (i.e., here="{{TiddlerName}}"), then the {{...}} syntax would just be passed along as literal text without evaluation.
HTH
enjoy,
-e
Eric Shulman
TiddlyTools / ELS Design Studios
InsideTiddlyWiki: The Missing Manuals