Great question. I'll start by answering your question about the naming convention. The first two octets in the release number are the feature release identifier (e.g. R10.01. R10.02, etc). Each time you see that number increase, you know that we have added some new features. For a list of the features added in each feature release, please consult the release notes. The last octet in the release number is the maintenance release identifier. Each subsequent maintenance release contains only bug fixes. If the last octet ends in anything other than a "0", than you know it is a maintenance release within that particular feature release.
As far as the best version of code to use, the most recent released version of code is R10.3.3, which is the third maintenance release within the R10.3 feature release. If there are no features that you need that were introduced in R10.4, R10.5, or R10.6, than it would be best to use R10.3.3 as it has the most up to date list of bug fixes.
I'm also hearing Adtran is identifying some versions of AOS as Long Term Support (LTS). Would R10.3.3 qualify for this? What are the details of LTS?
We are in the process of identifying what we are calling an Extended Maintenance Release (EMR). The EMR for this year will be R10.5, which means that bugs will continue to be addressed in R10.5.X but no new features will be added. We will be posting more details to the web soon.
I went ahead and flagged the "Correct Answer" on this post to make it more visible and help other members of the community find solutions more easily. If you don't feel like the answer I marked was correct, feel free to come back to this post and unmark it and select another in its place with the applicable buttons. If you still need assistance, we would be more than happy to continue working with you on this - just let us know in a reply.