I was actually unfamiliar with ATLAS, but I am familiar with Eigen, which I use whenever implementing matrix operations in C++:
http://eigen.tuxfamily.org
With so many available options, you should never really be implementing your own matrix multiplication.
I'm not exactly an expert on this kind of thing, but from what I understand, Eigen and Armadillo [1] are the best performing libraries in this space. I'd probably go with Eigen, since it appears to be used in more high-profile places and thus more likely to keep being maintained.
uBLAS, on the other hand, does not perform that well in comparison, but it is more likely to keep being maintained as part of Boost.
Blaze [2] is supposed to be very high-performance, but it is relatively new, so there's no way to tell where the chips may fall on this one.
Armadillo is also used in pretty well known places: NASA, Siemens, Intel, Boeing, Stanford, CMU, MIT, Schlumberger, Deutsche Bank, US Navy, etc. (source: access logs for Armadillo website).
It's also the basis for the MLPACK machine learning library:
http://mlpack.org/
Additionally, there are Armadillo bindings to Python and the R language:
Well, I was comparing apples to apples (i.e., C++ expression template linear algebra libraries). Some (most?) of them [1,2] are linkable against BLAS routines from Intel MKL or ATLAS or whatever.
With so many available options, you should never really be implementing your own matrix multiplication.