Apparently those in need of your project, whose problems it intends to solve, have to be made aware of it.
I think Stack Overflow, as "The Wikipedia of Long Tail Programming Questions" is quite appropriate place for your target audience:
For every person who asks a question and gets an answer on Stack Overflow, hundreds or thousands of people will come read that conversation later. Even if the original asker got a decent answer and moved on, the question lives on and may continue to be useful for decades...
Stack Overflow practices and principles also can guide you on how to present your solution appropriately. Note these also apply beyond Stack Exchange network sites, it's just that here, these are stated explicitly and polished by vast practice of presenting problems and solutions to these.
As an experienced high rep SO user you are probably already well aware of these and in particular of the guidance given in below resources:
Note if you found no questions to "match the answer" you'd want to write, it is legitimate (and even encouraged) to submit your own question and answer it yourself. If you're interested in details, refer to MSO 'self-answer' tag wiki, there are quite helpful references to SE blog articles. You may also check some questions in that MSO tag to find out what can possibly go wrong and how to do it right.
Overall, your tactics can be pretty straightforward. Find (or write your own) description of the problem and write an answer explaining why and how it could be solved by your project. The better answer you write, the more chances for upvotes it gets, the better chances it will get to reach your target audience.
One thing to avoid is posting link-only-answers - as you probably already know, these are rather highly discouraged. Posting just a link to your project won't bring you much, you better give an easy to read and understand description of the project explaining what problems it solves and how.
Assuming that relevant questions may appear at any time, it may be difficult to be always ready to quickly give an answer of good quality. For your case, the most natural way to be prepared is to have a readme file right there in your project, with text that would be easy to just quote when needed to explain purpose and strong points of your project. Keep it under version control, update and polish the text in there and you'll always be in the best possible shape to send a message to your target audience.
In a small simple project, readme file like mentioned above can also serve a purpose of developer guide, having sections for usage examples, how to start, release notes etc.
Another thing you better be prepared to is to answer typical questions about your project. First of all, these could be like how to start and how to use - it could be very helpful to have "canned" answers to these in respective sections of readme file, as mentioned above. Note if you find some section gets too large, nothing prevents you from "extracting" it into separate file and just referring to it in your "main readme":
- How to start.
Refer to file docs/QuickStart.txt
Usage examples.
Refer to file docs/UsageExamples.txt
Another kind questions from potential users one can always expect is "what if I discover an issue / bug in the project?" This kind of questions is best served by issue-tracking.
For a small simple project with little or no issues at all, this can be done as simple as just adding a section "Known issues" in readme file (if issue tracking eventually overgrows that, this will likely need to "migrate" to real tracking tool).
- - what if I discover an issue / bug in the project?
- Update section "Known issues" in readme file
Even if you believe that for some reasons your project is bug-free, it is just easier to refer askers like above instead of giving them lengthy explanations for why you can't have bugs (especially taking into account that it's unlikely someone will believe in bug-free code:).