Action Details
Requirements and how-to articles for Steam's action:

The Steamworks API allows your game to take full advantage of Steam by accessing all of the underlying systems provided through the API (e.g. inviting friends to play, achievements, leaderboards, etc.) This is optional but highly recommended.

You need this to get it done:

Steamworks SDK
If you haven't already, download the Steamworks SDK and unzip it.
Engine/Programming Language
The Steamworks API officially supports C++, using Microsoft Visual Studio 2008+ on Microsoft Windows, GCC 4.6+ and Clang 3.0+ on macOS and SteamOS/Linux. See official documentation for more information if you are using a third party engine or a programming language other than C++.
Achievement Text
Display Name - The name this achievement will have in client notification pop-ups, and in the Community.
Description: A description of this achievement, for displaying in the Community.
Both may be localised.
Achievement Icons
Requires both an Unachieved Icon (the icon to display when it is not yet achieved) and an Achieved Icon (the icon to display when it is achieved.)
File format: .jpg
Dimensions: 64 x 64 pixels
Achievement Properties
ID - An automatically-generated numerical ID for each achievement.
API Name - The string used to access this achievement using the API.
Progress Stat - Specifies a stat that's used as a progress bar in the Community for this achievement. The achievement will also automatically unlock when the stat reaches the unlock value.
Set By - Sets who can unlock the achievement. The default is client.
Hidden - If true, a "hidden" achievement does not show up on a user's Community page (at all) until they have achieved it.
Stats Text
Display Name (e.g. "Games Played", "Max Shots Fired", etc.)
May be localised.
Stats Properties
ID - An automatically-generated numerical ID for each stat.
Type - The type of this Stat - INT, FLOAT, or AVGRATE.
API Name - The string used to access this stat using the API.
Set By - Sets who can modify the stat. The default is Client
Increment Only? - If set, this stat is only allowed to increase in value over time.
Max Change - If set, sets a limit on the amount that the stat's value can change from one SetStat call to the next.
Min Value - If set, the minimum numerical value this stat may take. By default, the min is the minimum of the underlying numerical type (INT_MIN or -FLT_MAX).
Max Value - If set, the maximum numerical value this stat may take. By default, the max is the maximum of the underlying numerical type (INT_MAX or FLT_MAX).
Default Value - If set, the default value that this stat will initially be set to for a new user. If not set, the default value is zero.
Aggregated - If set, Steam will keep a global total for this stat. See Global Stats below for more information.
Requirements missing or found errors? Report

How-To Articles
A list of useful links for you:

Steamworks Documentation - Steamworks API Reference
Catalogue of all the features available in the Steamworks API.
Steamworks Documentation - Commercial engine and non-C++ language support
Information about what level of support for the Steamworks API is provided by different commercial game engines and programming languages other than C++.
Link missing here or found errors? Improve How-Tos